1. Field of the Invention
This invention relates to a pro unable integrated circuit and, more particularly, to an apparatus and method for determining a particular software program revision possibly used to program a particular integrated circuit hardware revision so that compatibility can be determined and/or restored.
2. Description of the Related Art
An integrated circuit is often referred to as a die or chip. Those terms are henceforth interchangeably used. A die may contain several thousand active and passive devices formed on a monolithic substrate. Those devices can be interconnected to form an overall circuit. Active devices include transistors, whereas passive devices include resistors and capacitors, for example.
Active and passive devices are formed and interconnected across the substrate using, numerous fabrication steps, materials and equipment. To achieve precise placement of features which form an integrated circuit, a carefully carried out sequence of processing steps (e.g., deposition, etch, lithography, implant and/or heat cycles) must be followed. Any deviation from the pre-set fabrication xe2x80x9crecipexe2x80x9d will modify characteristics of the resulting product. In addition, any changes whatsoever to equipment used to implement the various steps will also modify the resulting product. For example, an ion implant concentration and/or energy from a specific ion implanter may be desired over other concentrations, energies or implanters. For this reason, many fabrication processes require specific types of equipment used to perform the various processing steps.
In addition to tracking the sequence and equipment used during the fabrication sequence, there may also be a desire to promote a particular arrangement of features which form the various active and passive devices. In this instance, the features are produced according to what is often called a xe2x80x9clayoutxe2x80x9d. There may be numerous layout arrangements used for a specific integrated circuit depending upon the number of revisions that must be undertaken to achieve optimal performance, or performance which is more suitable to a specific application. As the layout changes, the various masks which form the integrated circuit also change. Typically, the revision number on each mask is imprinted on the resulting integrated circuit. The imprint is usually placed in a nonfunctional region of the integrated circuit and can be visually detected. Unfortunately, once the integrated circuit is removed from the wafer and encapsulated in a package, the revision number of the layout can no longer be discerned.
It would be desirable to track not only the particular processing recipe but also the layout revision, both of which are generically referred to henceforth as the manufacturing or xe2x80x9chardwarexe2x80x9d revision. It is intended that hardware revision encompass one or more, or a grouping of select parameters (e.g., processing steps, processing equipment, processing materials and/or layouts, etc.) used in forming active and passive devices on an integrated circuit. The tracking mechanism must be one which can detect a hardware revision attributable to an integrated circuit after the integrated circuit is removed from the wafer, placed in a package and possibly shipped to a customer. The mechanism of tracking hardware revisions after the integrated circuit leaves the manufacturing site proves beneficial, for example, in determining why or how the integrated circuit failed in the field.
Hardware revisions (i.e., revision to the processing recipe, processing equipment, or layout) used to produce a dissimilar version of integrated circuit product, are generally needed in order to perform changes to the final hardware product or possibly to experiment with changes to the product. Experimental results may help identify possible future enhancements to the hardware product.
Experimental wafer lot runs are often referred to as non-qualification lots used by product engineers to ascertain, for example, possible causes of yield loss. By performing experiments on one or more wafers or one or more wafer lots, the product engineer can gather information useful in improving the integrated circuit performance or yield. Periodic experiments prove useful but only if packaged integrated circuits formed from those experiments are not inadvertently shipped to a, customer. While a non-qualification wafer lot may pass final tests procedures, it may nonetheless be prudent not to ship integrated circuits derived from that lot. For example, if the experimental wafers demonstrate reliability problems, then the shipped integrated circuits may, over time, fail. It is not until the non-qualified wafers are qualified is it desirable to release that product to a customer. For this reason, it would be beneficial to not only track each and every hardware revision used to produce all the various parameters which involve integrated circuit manufacture, but also to prevent shipping non-qualified hardware revisions to a customer.
In addition to tracking hardware revisions, it may also be desirable to track software revisions. For example, many integrated circuits employ one or more memory elements arranged across the die. A popular memory device is one which can be electrically programmed after the die is manufactured, or possibly shipped to the customer. Once the storage elements are programmed, they are preferably non-volatile. Present non-volatile storage elements include, for example, programmable read only memory (xe2x80x9cPROMxe2x80x9d), fuses and/or anti-fuses, etc. Examples of popular PROMs include EPROMs, EEPROMs, or flash memory. The memory elements upon the die may be programmed either by the manufacturer or in the field. It may be important to keep track of the particular version of software used to program the memory elements since compatibility of that program version to a particular hardware revision used in forming the integrated circuit is important.
If an integrated circuit involves non-volatile memory elements then, in many instances, a customer will program the memory elements in the field using a software program revision which may or may not be compatible with the hardware revision shipped from the manufacturer. If the integrated circuit fails in its intended purpose, the customer or manufacturer will generally not know if the problem rests with the hardware or the manner in which the non-volatile storage elements were programmed. Typically, however, a manufacturer will know that a particular hardware revision is compatible with specific software revisions which, in most instances, are supplied directly or indirectly to the customer from the manufacturer. Thus, if a new hardware revision is released to the customer, then changes may be needed to the software program to form a new software revision compatible with that hardware. It is for this reason that it would be desirable to know if the hardware revision matches the software revision. More importantly, it would be desirable to read both the hardware and software revisions either at the customer or manufacturer site, possibly during program of the non-volatile memory. If, for example, the hardware and software revisions do not match, the customer can return the product to the manufacturer and receive updated hardware or software. The benefit of knowing a particular hardware revision and whether that revision is qualified for release to a customer would therefore prove an important benefit to the manufacturer along with knowing the particular software revision used in programming the integrated circuit at the customer site.
The problems outlined above are in large part solved by an electrically programmable integrated circuit, die or chip. By design, the present integrated circuit is programmed as to a specific hardware revision used in producing the integrated circuit and a specific software revision used in programming the integrated circuit. A manufacturer may write a unique set of product engineering (xe2x80x9cPExe2x80x9d) bits into one or more storage elements reserved for receiving those bits. The PE bits written by the manufacturer indicate a specific hardware revision, and includes various parameters used in producing the integrated circuit.
The PE bits programmed by the manufacturer are introduced preferably when the integrated circuit forms a part of a wafer-and a wafer lot. In this instance, the PE bits are programmed during wafer probe or engineering test across all integrated circuits on a wafer experiencing similar manufacturing parameters (e.g., processing sequence, processing recipe, processing equipment or layout, etc.). The PE bits containing hardware revision are specific to a particular hardware revision from among numerous hardware revisions. The particular hardware revision is programmed into non-volatile storage elements which maintain that hardware revision after the integrated circuit is assembled and after it is shipped to a customer. The integrated circuit preferably contains non-volatile memory separate from or as part of the non-volatile storage elements which receive the PE bits. Accordingly, a customer may program the non-volatile memory after the integrated circuit is shipped. The particular version of software program used in this process is written into the PE bit storage locations at the same time in which the nonvolatile memory is programmed. This storage elements which contain the hardware revision are separate from those which contain the software revision. Beneficially, both the hardware and software revisions are contained on the integrated circuit and are accessible by the manufacturer to determine if compatibility exists between those revisions.
According to one embodiment, a customer may return a programmed integrated circuit to the manufacturer, claiming the integrated circuit is failing its intended purpose. The manufacturer may then read from the programmed integrated circuit both the hardware and software revision numbers and determine if they are compatible. If not, the manufacturer may either forward a new software revision to the customer which is compatible with the current integrated circuit or, instead, the manufacturer may forward a newer integrated circuit compatible with the present software revision used by the customer. In either instance, the manufacturer will know based on what has been programmed into the integrated circuit both the hardware and software revision numbers, the benefits of which are especially suited for failure analyses.
According to an alternative embodiment, the customer may program PE bits of the software revision. Built within the integrated circuit is a comparator circuit portion which compares the programmed software revision with the previously programmed hardware revision. If the revisions are incompatible, the comparator circuit will forward a message to the software programming equipment telling the programmer to discontinue programming and contact the manufacturer for possibly another software program version. Accordingly, the comparator circuit contains sufficient circuitry not only to perform the comparison, but also to indicate a proper software or hardware revision to be used. Thus, instead of programming the integrated circuit with an inappropriate software version, the customer will discontinue programming, contact the manufacturer and thereafter receive a new software before proceeding with a possible damaging result. Furthermore, storage locations and compare circuitry within the integrated circuit proves beneficial in avoiding unnecessary returns of integrated circuits which would be perfectly suitable if the customer were provided with an up-to-date software revision.
Broadly speaking, the present invention concerns an integrated circuit. The integrated circuit includes a first storage element formed on the integrated circuit for receiving information as to a particular revision of software used to program the integrated circuit. The integrated circuit may further comprise a second storage element configured to receive information as a particular manufacturing revision used to produce the integrated circuit. Yet further, the integrated circuit may include a circuit for comparing information in the first and second storage elements to ascertain compatibility between a particular revision of software and the particular manufacturing revision (i.e., hardware revision). The first storage element is preferably written during programming of the integrated circuit, whereas the second storage element is written during manufacture or test of the integrated circuit. The first and second storage elements are inaccessible during normal operation of the integrated circuit. Preferably, the first storage element is a non-volatile storage element which are electrically alterable during program of the integrated circuits.
The present invention further concerns an apparatus for determining capability between parameters used to produce an integrated circuit and software used to program the integrated circuit. The apparatus includes a first mechanism for writing information into a first storage location as to a particular revision of programing software. A second mechanism is further included for writing information into a second storage location as to a particular set of hardware parameters used to form the integrated circuit. A circuit is arranged on the integrated circuit for comparing information within the first and second storage locations to determine compatibility.
The present invention further concerns a method for determining hardware and software compatibility of an integrated circuit. The method includes writing information into a second storage element arranged on the integrated circuit as to a particular revision of hardware comprising the integrated circuit. The method further includes writing information into a first storage element arranged on the integrated circuit as to a particular revision of software used to program the integrated circuit. The hardware and software revisions can then be read to determine compatibility. Information can be re-written into the first storage element as to another revision of software if readings of information previously stored in the first storage element is incompatible with that stored in the second storage element.